#ifndef ROBOT_H
#define ROBOT_H

#include <string>

class Robot
{
public:
	Robot(const std::string& type);
	virtual ~Robot();

	const std::string& Type() const;

	virtual void MoveLeft() = 0;
	virtual void MoveRight() = 0;
	virtual void MoveDown() = 0;
	virtual void MoveUp() = 0;
	virtual void Hit() = 0;
	virtual void TurnLeft() = 0;
	virtual void TurnRight() = 0;
	virtual void Spawn() = 0;
	virtual void Fall() = 0;
	virtual void Shoot() = 0;
	
protected:
private:
	std::string robotType; // gray, yellow, red, green, blue, etc
};

#endif //ROBOT_H
